home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 October / EnigmA AMIGA RUN 01 (1995)(G.R. Edizioni)(IT)[!][issue 1995-10][Aminet 7].iso / Aminet / comm / fido / RFS275.lha / DOCS / RFH.DOC < prev    next >
Text File  |  1995-01-03  |  10KB  |  270 lines

  1. ;$VER: RFH Doc The WPL Remote Freq Handler Function Host  Williamson  56.02
  2.  
  3.     RFH  is  an  Arexx  FunctionHost  version  of  the RFS WPL File Request
  4. Server.   RFH  is identical to RFS in most respects, but is a stripped down
  5. version  (about  1/2  the  size)  using  a  smaller  config file (about 1/3
  6. smaller).   The RFH.cfg config file is read only when RFH loads and opens a
  7. port,  or  when the RFHCFG command is received.  The following RFS features
  8. and/or functions are not present in RFH.
  9.        
  10.     - all  support  of human requests removed
  11.     - Personal message  service removed.  
  12.     - FirstCall text removed
  13.     - Header text removed
  14.     - Tail text removed
  15.     - Debug and Verbose output removed
  16.     - config file format different
  17.  
  18.     RFH  has  a  number  of  features  that are not available in RFS, these
  19. feature include:
  20.  
  21.     - can limit file requests to only those listed as INCLUDED nodes
  22.     - can limit bytes sent for those sites listed as LIMITED nodes
  23.  
  24.     RFH  processes requests approximately twenty times faster than RFS.  
  25.  
  26.     The  Installer  script  'Install-RFH', allows one to select support for
  27. file  descriptions in FileNote format (Generic) , or in DLG, TransAmiga and
  28. Excelsior  BBS formats.  This method reduces the size of RFH by eliminating
  29. unused code.
  30.  
  31.     RFH  is  based  upon  RFS  which  in  turn  was  ported to WPL from the
  32. source-released  version of Roger Clark's QuickSilver File Request Handler.
  33. Certain  procedures originally written by Roger have been optimized and are
  34. used  with his permission and my thanks.  Roger and I have an on-going code
  35. exchange   arrangement   in   an  effort  to  provide  standardization  and
  36. optimization for the users of both packages.
  37.  
  38.     Compiling:
  39.  
  40.     After  running  the  Installer  script,  RFH  may  be compiled with the
  41. following command line:
  42.  
  43.         RexxPlus Mail:rexx/RFH.rexx +UL(xferq.library,0,-30,0)
  44.             +UL(RexDosSupport.library,0,-30,0) +BS -MW +VE
  45.  
  46.     Rename RPDIR:RFH.rexx to RFH.
  47.  
  48.  Configuration:
  49.  
  50.     Nodelist flag should be set to XX.
  51.  
  52.     All  configuration  options  are  documented  in CFG:RFH.cfg.  The only
  53. other  external  file  required  is the xfreqsh compatible list of freqable
  54. files.
  55.  
  56.  Freq list:
  57.     The freq list is in the format:
  58.     request_name [!password] fullpathname
  59.  
  60.     RFSfreqlist.rexx,  Wfilelist.rexx  and  Falcon  FileMGR.rexx all create
  61. such  a  list,  with password, magic name and auto fullpath update support.
  62. Other  xfreqsh  freq  list  creators  such  as  GKupload  and others may be
  63. compliant also.
  64.  
  65.     For DLG systems, this script by Denis Turcotte creates the freq list:
  66.  
  67.  List File:(?|??|???|????)/~(enterarea.txt|POINTERS.FILE|User.file|.info|*.fd|File.dat) FILES NOHEAD LFORMAT "%N %F%N" to t:flist
  68.  sort t:flist t:flist
  69.  join cfg:magic.lst t:flist as cfg:FREQ.LST
  70.  delete t:flist QUIET
  71.  
  72.  Update Requests:
  73.  
  74.     The  FTS-0006  update  request  specification was written, as with most
  75. other  FTSs,  to  document  existing  practice  with  a particular piece of
  76. software.   However,  it  is  obviously  NOT  user friendly, as it requires
  77. conversion  between  'human'  time  and  unix  time.   While this is easily
  78. accomplished  by  programs which create .REQ files, it is not so simple for
  79. people who write them manually.
  80.  
  81.     Therefore, it was proposed that a new "UPDATE" type be implemented that
  82. can  be  used  by humans.  QuickSilver and FreqMate now include support for
  83. this format.
  84.  
  85.     This is SIMPLY: 
  86.             +/-Uyymmdd[hhmmss]
  87.     Where the time is optional and GMT offset is NOT taken into account.
  88.  
  89.     Both forms (date and datetime) are accepted by RFS.
  90.  
  91.     It  has  been suggested in the NET_DEV echo that the Nodelist FLAG "XU"
  92. be used to indicate this type of update request handling.
  93.  
  94.     In  addition,  FTS-0006  standard  unix  timestamp  update requests are
  95. processed.
  96.  
  97.  WildCards and Magic Request Names:
  98.     
  99.     RFH  can  use  AmigaDOS  pattern matching facilities.  This SHOULD mean
  100. that all pattern matching specifications should work, although this has NOT
  101. been tested.  This also means that the underscore bug of AmigaDOS's pattern
  102. matching  unfortunately affects operations.  If a fullpath name contains an
  103. underscore  preceeding  the  PATTERN,  it  may  be  considered  a  match by
  104. AmigaDOS.
  105.  
  106.     Two configuration options affect how wildcards are processed:
  107.         MatchFirst  - if TRUE, only the first file matching is sent
  108.         MultiMagic  - if TRUE, multiple files are send for MAGIC names
  109.  
  110.     
  111.     Startup:
  112.  
  113.     RFH  is  launched during mailer slave (modemline) startup, one port for
  114. each line that will accept file requests.
  115.  
  116.         RUN >NIL: RX RFH WPL_Application_Basename line [CFG cfgpath]
  117.             or
  118.         RUN >NIL RPDIR:RFH WPL_Application_Basename line [CFG cfgpath]
  119.     
  120.     where:
  121.         WPL_Application_Basename  - WSC-0004 compliant wpl-application
  122.                                     basename in lowercase.
  123.         line                      - the modem line
  124.  
  125.  
  126.         CFG full_cfg_pathname
  127.             alternate config file pathname eg: RAM:RFH.cfg
  128.             Normally   RFH   looks   for  it's  config  as  RAM:RFH.CFG  or
  129.             CFG:RFH.CFG. If an alternate config is specfied, it will look
  130.             for that one first.
  131.  
  132.         eg:
  133.             RUN >NIL: RFH porticus 2
  134.             RUN >NIL: RFH Gazebo 1 CFG S:rfh.cfg
  135.  
  136.  
  137.     Arexx Commands:
  138.  
  139.         Arexx Port name:  RFH$(line)
  140.     
  141.     The RFH ports commands:
  142.  
  143.         REQ         -   process a file request
  144.  
  145.         RFHCFG      -   re-reads RAM:RFH.CFG
  146.                     -   This will be executed when GenMailer is run with
  147.                         'Opt CONFIG'
  148.                     -   Can also be run from CLI
  149.                         RX "Address RFH2 RFHCFG"
  150.  
  151.         RFHEXIT     -   exits
  152.                         To close down an RFH port:
  153.                         Rx "Address RFH3 RFHEXIT"
  154.  
  155.  
  156.     Request Processing:
  157.  
  158.     REQ baud host reqfile listed fnc hyd remoteaddress remotesysop
  159.     
  160.         Baud            - modem<>modem bps
  161.         host            - our 5d Address for this session
  162.         reqfile         - fullpathname of file request to be processed
  163.         listed          - 1 if caller is in nodelist or site cache
  164.         fnc             - 1 if remote present FNC under EMSI, 0 otherwise
  165.         hyd             - 1 if hydra protocol active, 0 otherwise
  166.         remoteaddress   - 5D callers address
  167.         remotesysop     - callers names (nodelist, cache or emsi data)
  168.  
  169.     example mailer call:
  170.     RexxMsg FY RFH$(line) "REQ $(Baud) $(host.address) $(infile)
  171.                         $(listed) $(fnc) $(hyd) $(remote.address) $(remote.sysop)"
  172.  
  173.  
  174.  
  175.  
  176.     RFH Installation for JamMail:
  177.  
  178.         JamMail does not support any direct WPL file request handlers other
  179. than  XfreqSH,  so  to  use  RFH  you  will  have to Edit your jammail.wpl.
  180. Perhaps  you  can  convince  James  McOrmond  to  add  support for RFH, the
  181. information herein should be sufficent in either case.
  182.  
  183.         After  configuring JamMail to use XfreqSh, find the following lines
  184. in the 'postinbound:' prodcedure:
  185.  
  186.     Set whatrun "Run $(xferqsh) >>$(freqlog) $(freqcfg) $(remfile) $(infile) \"$(Remote.Address)\" \"Received at $(baud) on ${$(Line).date} $<Time>\""
  187.     RexxMsg SY REXX "Address 'COMMAND' '$(whatrun)'"
  188.     Return
  189.  
  190.     As  far as I know, JamMail does not set any variable to indicate that a
  191. site is IN the nodelist or PhoneBook.  It also does not set any variable to
  192. indicate  remote  presented  FNC  under EMSI.  Jammail does not support the
  193. Hydra protocol at all.
  194.     Therefore  we  will  manually  set  the  $(listed),  $(fnc), and $(hyd)
  195. variables.   If  there are similar variables added to JamMail in the future
  196. and  they  are  set as booleans (0 or 1) then substitute them for $(listed)
  197. , $(fnc), and $(hyd).  (and tell me about it so I can update this ;)
  198.  
  199.   replace the above code with either:
  200.     Set listed 1 fnc 0 hyd 0
  201.     RexxMsg FY RFH$(line) "REQ $(Baud) $(host.address) $(infile) $(fnc)
  202.                 $(hyd) $(listed) $(remote.address) $(remote.sysop)"
  203.     Clear listed
  204.     Return
  205.  
  206.   or 
  207.  
  208.     RexxMsg  FY  RFH$(line)  "REQ  $(Baud)  $(host.address) $(infile) 1 0 0
  209.             $(remote.address) $(remote.sysop)"
  210.     Return
  211.  
  212.     Now  find  each  'startup-' label (startup-1:, startup-2:  etc) and add
  213. the  following  just before the 'Jump slaveloop' instruction for each slave
  214. that will handle file requests:
  215.  
  216.     System "Run >NIL: Rx RFH jammail $(line)"
  217.  
  218.   or if you have compiled RFH.rexx:
  219.  
  220.     System "Run >NIL: RFH jammail $(line)"
  221.         
  222.     
  223.     To  have  the RFH ports close when the mailer exits, you have to find
  224. all code sections where a slave exit occurs.
  225.  
  226.     Find this piece of code in the 'WaitRing:'  procedure:
  227.  
  228.       Set RC $<abort>
  229.          FalseJump BangIt2
  230.          RexxMsg NY LOGPROC "PutLog JamMailLogs [$(Line)] $<Time> Line $(line) Exiting"
  231.          ModemClose
  232.          Return
  233.  
  234.     Insert this before the 'Return'
  235.  
  236.     RexxMsg FY RFH$(line) "RFHEXIT"
  237.  
  238.     Find this section of code after 'NotBReakcNow2:'
  239.  
  240.    Set RC $<abort>
  241.    FalseJump WaitRing1
  242.       RexxMsg NY LOGPROC "PutLog JamMailLogs [$(Line)] $<Time> Line $(line) Exiting"
  243.       ModemClose
  244.       Return
  245.  
  246.     Insert this before the 'Return'
  247.  
  248.     RexxMsg FY RFH$(line) "RFHEXIT"
  249.  
  250.  
  251.     JamMail  does  not  follow  the  WSC  standards  in  respect to LogProc
  252. loggroup  names.   However, neither do any of the Shelter Mailers :) So you
  253. will have to edit RFH.rexx to change the loggroup name assignment.
  254.  
  255.     from:
  256.         loggroup=lower(wplport)||'wpl'
  257.     to
  258.         loggroup=wplport||'Logs'
  259.  
  260.     As  far  as  I  know,  unlike  Shelter Mailers, JamMail does not have a
  261. facility for reconfiguration while running.  If you wish to add support for
  262. the   RFHCFG   command,   please   ask  James  to  add  support  for  slave
  263. unload/reload.
  264.     You may still use the RFHCFG command with the following command line by
  265. directly addressing the RFH PORT.:
  266.  
  267.     Rx "Address RFH2 RFHCFG"
  268.  
  269.     This should do it.
  270.